package com.kamistoat.meimeimall.common.annotation;

import java.lang.annotation.*;

/**
 * 加在简单更新方法上的清除缓存注解。
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@Documented
public @interface ClearCache {
    /**
     * 缓存的前缀，需要以正则表达式的形式给出，例如:
     * member:receiveAddress:#memberId:#isDefault
     * 的含义是： 从方法的输入参数中提取出 memberId 和 isDefault 拼接成缓存的键进行查询.
     * <p></p>
     * 允许以嵌套形式获取值: member:entity:#orderCreateVo.orderEntity.memberId
     */
    String prefix() default "";

    /**
     * 要同时删除多个缓存时用这个
     */
    String[] prefixes() default {};
}
